7.04. Справочник по Kibana
Справочник по Kibana
Kibana — это веб-интерфейс для визуализации, анализа и управления данными, хранящимися в Elasticsearch. Он предоставляет широкий набор инструментов: от интерактивного поиска по сырым документам до создания сложных дашбордов, настройки алертов, геопространственного анализа и работы с машинным обучением. Весь функционал Kibana управляется через конфигурационный файл kibana.yml и встроенные пользовательские интерфейсы.
Конфигурация Kibana (kibana.yml)
Основной способ настройки сервера Kibana — редактирование файла kibana.yml. Расположение файла зависит от способа установки:
- Архивные дистрибутивы (
.tar.gz,.zip):$KIBANA_HOME/config/kibana.yml - Пакетные дистрибутивы (Debian, RPM):
/etc/kibana/kibana.yml
Все параметры в файле закомментированы по умолчанию. Для активации достаточно раскомментировать строку и указать нужное значение.
Системные настройки сервера Kibana
| Параметр | По умолчанию | Описание |
|---|---|---|
server.port | 5601 | Порт, на котором Kibana принимает HTTP-запросы. |
server.host | "localhost" | Адрес привязки сервера. Значение "0.0.0.0" разрешает подключения с любых IP. |
server.name | "your-hostname" | Имя сервера Kibana, отображаемое в логах и интерфейсе. |
server.basePath | "" | Базовый путь, если Kibana развернут за reverse proxy (например, /kibana). Не должен оканчиваться на /. |
server.rewriteBasePath | false | Указывает Kibana удалять basePath из входящих запросов. |
server.publicBaseUrl | "" | Публичный URL, по которому пользователи обращаются к Kibana. Обязателен при использовании basePath. |
server.maxPayload | 1048576 (1 МБ) | Максимальный размер тела входящего HTTP-запроса в байтах. |
server.excludeRoutes | — | Массив путей, которые блокируются на уровне сервера (например, ["/api/status"]). |
Настройки SSL/TLS для Kibana
| Параметр | По умолчанию | Описание |
|---|---|---|
server.ssl.enabled | false | Включает HTTPS для соединений между браузером и Kibana. |
server.ssl.certificate | — | Путь к PEM-файлу сертификата сервера. |
server.ssl.key | — | Путь к PEM-файлу приватного ключа сервера. |
Подключение к Elasticsearch
| Параметр | По умолчанию | Описание |
|---|---|---|
elasticsearch.hosts | ["http://localhost:9200"] | Массив URL-адресов нод Elasticsearch. |
elasticsearch.username | "kibana_system" | Имя пользователя для внутренних операций Kibana (например, управление .kibana-индексом). |
elasticsearch.password | "pass" | Пароль для указанного пользователя. |
elasticsearch.serviceAccountToken | — | Токен сервисной учётной записи вместо логина/пароля. |
elasticsearch.requestTimeout | 30000 (30 сек) | Таймаут ожидания ответа от Elasticsearch в миллисекундах. |
elasticsearch.maxSockets | 1024 | Максимальное число одновременных сокетов к Elasticsearch. |
elasticsearch.compression | false | Включает сжатие данных при обмене с Elasticsearch. |
elasticsearch.shardTimeout | 30000 | Таймаут ожидания ответа от шардов Elasticsearch. |
elasticsearch.requestHeadersWhitelist | [ "authorization" ] | Список заголовков, которые Kibana пересылает в Elasticsearch. |
elasticsearch.customHeaders | {} | Статические заголовки, добавляемые ко всем запросам в Elasticsearch. |
Настройки SSL/TLS для подключения к Elasticsearch
| Параметр | По умолчанию | Описание |
|---|---|---|
elasticsearch.ssl.certificate | — | Сертификат клиента Kibana для mutual TLS. |
elasticsearch.ssl.key | — | Приватный ключ клиента. |
elasticsearch.ssl.certificateAuthorities | — | Путь к файлу центра сертификации (CA). |
elasticsearch.ssl.verificationMode | "full" | Режим проверки сертификата: "full", "certificate", "none". |
Логирование
| Параметр | По умолчанию | Описание |
|---|---|---|
logging.root.level | "info" | Уровень логирования: "off", "debug", "info", "warn", "error". |
logging.appenders.default | — | Конфигурация вывода логов в файл (поддержка file, rolling-file, JSON-формат). |
logging.loggers | — | Настройка уровней логирования для конкретных компонентов (например, elasticsearch.query, http.server.response). |
logging.browser.root.level | — | Уровень логирования в консоли браузера. |
Прочие системные параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
path.data | "data" | Каталог для хранения локальных данных Kibana (не в Elasticsearch). |
pid.file | — | Путь к PID-файлу процесса. |
ops.interval | 5000 (5 сек) | Интервал сбора метрик производительности (минимум 100 мс). |
i18n.locale | "en" | Язык интерфейса: "en", "zh-CN", "ja-JP", "fr-FR", "de-DE". |
Настройки миграций сохранённых объектов
| Параметр | По умолчанию | Описание |
|---|---|---|
migrations.batchSize | 1000 | Количество документов, обрабатываемых за одну итерацию миграции. |
migrations.maxBatchSizeBytes | "100mb" | Максимальный размер пакета при индексации. |
migrations.retryAttempts | 15 | Число попыток повтора при временных ошибках миграции. |
Настройки автозаполнения поиска
| Параметр | По умолчанию | Описание |
|---|---|---|
unifiedSearch.autocomplete.valueSuggestions.timeout | 1000 | Таймаут генерации подсказок в миллисекундах. |
unifiedSearch.autocomplete.valueSuggestions.terminateAfter | 100000 | Максимальное число документов на шард для генерации подсказок. |
Основные UI-элементы и функции Kibana
Discover
Интерфейс для интерактивного просмотра и фильтрации сырых документов из Elasticsearch.
Элементы:
- Панель поиска: полнотекстовый запрос или фильтр по полям.
- Time filter: выбор временного диапазона (обязательно наличие временного поля).
- Field list: список доступных полей с возможностью быстрого фильтра.
- Document view: отображение отдельных документов в формате JSON.
- Histogram: визуализация распределения событий по времени.
Visualize Library
Библиотека всех созданных визуализаций.
Типы визуализаций:
- Vertical / Horizontal Bar
- Line / Area
- Pie / Donut
- Goal / Gauge
- Tag Cloud
- Heatmap
- Lens (гибкий drag-and-drop редактор)
- TSVB (Time Series Visual Builder)
- Vega (на основе спецификации Vega/Vega-Lite)
Dashboards
Композитные страницы, объединяющие несколько визуализаций и виджетов.
Функции:
- Глобальные фильтры (применяются ко всем панелям).
- Time range picker (единый временной диапазон).
- Full-screen mode.
- Export в PDF, PNG, CSV.
- Embedding через iframe.
- Drill-down по данным (переход в Discover или другую визуализацию).
Alerting
Система мониторинга и оповещения на основе правил.
Типы правил:
- Threshold alert (превышение порога).
- Anomaly detection alert.
- Uptime monitor alert.
- Custom query alert.
Действия (Actions):
- Отправка email.
- Webhook.
- Slack, PagerDuty, Jira и другие интеграции.
- Индексация события в Elasticsearch.
Reporting
Генерация отчётов по дашбордам и визуализациям.
Форматы:
- PNG
- CSV (для таблиц и Discover)
Режимы:
- On-demand
- Scheduled (по расписанию)
Maps
Геопространственный анализ данных.
Возможности:
- Отображение geo_point и geo_shape.
- Heatmap, Grid, Clustering.
- Наложение собственных слоёв (GeoJSON, WMS).
- Фильтрация по регионам.
Machine Learning
Анализ временных рядов и обнаружение аномалий без написания кода.
Функции:
- Anomaly detection jobs.
- Data frame analytics (classification, regression, outlier detection).
- Model management и переобучение.
Dev Tools
Встроенный REST-клиент для взаимодействия с Elasticsearch.
Компоненты:
- Console: отправка запросов в формате Query DSL.
- Search Profiler: анализ производительности запросов.
- Painless Lab: тестирование скриптов на языке Painless.
Management
Центр администрирования Kibana.
Подразделы:
- Stack Management: управление индексами, шаблонами, политиками ILM.
- Spaces: изоляция контента для разных команд.
- Roles & Users: управление RBAC (в платной версии).
- Saved Objects: экспорт/импорт дашбордов, визуализаций, поисков.
- Fleet: управление агентами Elastic Agent и интеграциями.
- Connectors: настройка внешних сервисов для алертов.
Переменные окружения и подстановки
Kibana поддерживает использование переменных окружения в kibana.yml:
elasticsearch.hosts: ["${ELASTICSEARCH_URL:http://localhost:9200}"]
Синтаксис ${VAR_NAME:default_value} позволяет задать значение по умолчанию, если переменная не установлена.